iT邦幫忙

2023 iThome 鐵人賽

DAY 8
0

本篇重點:

  1. 什麼是RESTful API
    • 什麼是API
    • RESTful API 的 URL
    • RESTful API 的狀態碼
  2. 總結

在正式進入.NET的世界前,有一些概念必須要先知道,這樣後續開發才不會都不懂

那我們今天要講的概念是:Restful API

前面幾天都在說明如何建立專案環境 & 連接資料庫,如果還沒有一個Vue & .NET的專案,或在架環境的過程中遇到什麼問題,記得往前看喔!

1. 什麼是RESTful API

RESTful API 全名為「Representational State Transfer API」,是一種架構上的設計風格,用於建立Web網路服務,也因為它有一套完善的規範和原則,使得Web前後端之間的溝通變得更加簡單,除錯上也相對容易

那什麼是API?

API 是 Application Programming Interface(應用程式介面)的縮寫,主要用來建立前後端之間的橋樑。每當你在前端做了一個動作(如點擊按鈕),就會發送一個Request給API,而API會將這個Request傳給後端,等後端將資料(Response)回傳給API後,API再發送給前端

這是我自己畫的示意圖,通常後端傳回來的Response都是JSON格式:
https://ithelp.ithome.com.tw/upload/images/20230924/20141088iLk6UCQeof.png

RESTful API 的 URL

RESTful API主要是用HTTP的方式做傳輸,比較常見是使用GET、POST、PUT、DELETE等操作,如果使用RESTful API的話,我們在定義API的URL就會變得相對簡單
https://ithelp.ithome.com.tw/upload/images/20230923/20141088EzzDvlx0mP.png

舉個例子,現在我們有四隻做CRUD(增刪查改)的API,其URL分別為:

  • /getListUser
  • /createUser
  • /updateUser
  • /deleteUser

這樣的API URL雖然一目了然,知道各別的用途是什麼,但數量一多,可讀性就會變得很差

如果使用RESTful API,其URL就會變成:

  • GET:/user
  • POST:/user
  • PUT:/user/{id}
  • DELETE:/user/{id}

可以看到,URL全都變成了/user,這樣我們就會根據它選擇的操作方式(GET、POST..等),去知道這隻API的用途是什麼,就不用花太多時間去找API

RESTful API 的狀態碼

RESTful API也有使用標準的「HTTP狀態碼(HTTP Status Codes)」,來告訴你API的請求結果:

  • 2開頭(成功):
    • 200 OK:請求成功。是最常見的成功碼
    • 201 Created:請求已成功並且新資源已被創建
    • 204 No Content:請求成功,但伺服器不返回內容。通常在DELETE中使用
  • 3開頭(重新導向):
    • 301 Moved Permanently:資源的 URL 已永久更改,請使用新的 URL
    • 302 Found:資源的 URL 暫時更改,客戶端應繼續使用原始 URL
    • 304 Not Modified:資源未修改,客戶端可以使用快取的版本
  • 4開頭(請求錯誤):
    • 400 Bad Request:伺服器無法理解請求的格式或參數
    • 401 Unauthorized:需要驗證,客戶端未提供有效的驗證資訊
    • 403 Forbidden:伺服器拒絕請求,通常因權限問題
    • 404 Not Found:請求的資源未找到
  • 5開頭(伺服器錯誤):
    • 500 Internal Server Error:伺服器遇到內部錯誤,無法處理請求
    • 502 Bad Gateway:伺服器作為代理接收到無效的回應
    • 503 Service Unavailable:伺服器目前無法處理請求,通常是因為過載或維護

比較常見的狀態碼是200 OK404 Not Found500 Internal Server Error,通常你看到5開頭就可以直接跟學長或廠商說:「後端爆掉拉!服務掛掉拉!我API串不上拉!」然後就可以稍微罷工休息一下/images/emoticon/emoticon32.gif,但如果你是做後端的,那就趕快修阿!

總結

基於上述種種,RESTful API使用了「統一的HTTP方法和請求/回應格式」,使得不同API遵循相同的開發模式,讓開發人員容易理解與使用,所以現在的Web大多都使用RESTful API的設計風格來做開發

我們後續的.NET開發也是使用RESTful API當設計規範,因為這個概念很重要,所以這邊才會獨立一篇出來講

如果在概念上有任何問題,都歡迎在下方留言提出喔!


上一篇
Day 7:環境篇 - 如何將.NET專案與SQL Server資料庫做連接 (下)
下一篇
Day 9:.NET概念篇 - API Controller和 Dto 設計是什麼?
系列文
30天挑戰:從無到有,使用Vue.js和.NET建立一個Web登入系統19
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言